package com.hd.trans.files.sort;

import android.os.Parcel;
import android.os.Parcelable;

import java.util.List;

/**
 * Author: yangtianwen
 * Time: 2021/12/27
 * Des:
 */
public interface ISort<T> {

    /**
     * 创建时间 新到旧
     */
    List<T> orderCreateTimeNewToOld(List<T> data);

    /**
     * 创建时间 旧到新
     */
    List<T> orderCreateTimeOldToNew(List<T> data);

    /**
     * 修改时间 新到旧
     */
    List<T> orderChangeTimeNewToOld(List<T> data);

    /**
     * 修改时间 旧到新
     */
    List<T> orderChangeTimeOldToNew(List<T> data);

    /**
     * 文件大小 小到大
     */
    List<T> orderSizeSmallToLarge(List<T> data);

    /**
     * 文件大小 大到小
     */
    List<T> orderSizeLargeToSmall(List<T> data);

    /**
     * 文件名称 A - Z
     */
    List<T> orderNameAToZ(List<T> data);

    /**
     * 文件名称 Z - A
     */
    List<T> orderNameZToA(List<T> data);

    enum SortMethod implements Parcelable {
        name, size, date, type, nameA2Z, nameZ2A, sizeSmall2Big, sizeBig2Small, createTimeOld2New,
        createTimeNew2Old, changeTimeOld2New, changeTimeNew2Old;

        public static final Creator<SortMethod> CREATOR = new Creator<SortMethod>() {
            @Override
            public SortMethod createFromParcel(Parcel in) {
                return SortMethod.values()[in.readInt()];
            }

            @Override
            public SortMethod[] newArray(int size) {
                return new SortMethod[size];
            }
        };

        @Override
        public int describeContents() {
            return 0;
        }

        @Override
        public void writeToParcel(Parcel dest, int flags) {
            dest.writeInt(ordinal());
        }
    }
}
